 /*
 * @data:2019-4-4
 * @author：yaowang（qq：1076949363）
 * 
 * @params.url:请求路径，必填参数（不包含主机地址）
 * @params.data:请求参数,默认值{}（对象类型）
 * @params.method:请求方式，默认值：POST（字符串类型 ：POST ，GET...）
 * @params.loading:控制加载动画默认true（true,false）
 * @params.options:扩展请求头参数，默认值：{}，（对象类型）
 */

import config from "../config/config.js"

function http(url, data = {}, method = "POST",loading=true,options={}) {
  return new Promise((resolve, reject) => {
    _request(url, data, method, loading, options, resolve, reject )
  })
}

function _request(url, data = {}, method = "POST", loading = true, options={}, resolve = () => console.log("请求成功"), reject = () => console.log("请求失败")) {
  var token = wx.getStorageSync('userState').token;
  let headerTmp = {
    'content-type': 'application/json',
    'Authorization': token
  }
  let header= Object.assign(headerTmp, options);
  if (loading){
    wx.showLoading({
      title: '加载中', mask: true
    })
  }
    
  wx.request({
    url: `${config.baseUrlDev}${url}`,
    method: method,
    data: data,
    header: header ,
    success: (res) => {
      wx.hideLoading()
      if(res.data.code == 200){
        resolve(res.data)
      }else if(res.data.code == 2006 || res.data.code == 2008){
        wx.navigateTo({
          url: '/pages/auth/index'
        })
        wx.showToast({
          title:'授权超时，请重新授权',
          duration: 2000,
          icon: 'none'
        })
      }else{
         if (res.statusCode != 200 || res.data.code != 200){
            wx.showToast({
              title:'泪奔了...稍等下',
              duration: 2000,
              icon: 'none'
            })
            return
          }
      }
    },
    fail: (err) => {
      wx.hideLoading()
      wx.showToast({
        title: '请求失败',
        duration: 1500,
        icon: 'none'
      })
      reject(err)
    }
  })
}

module.exports = http